package com.sky.service;

import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.dto.PasswordEditDTO;
import com.sky.entity.Employee;
import com.sky.exception.PasswordErrorException;
import com.sky.result.PageResult;

public interface EmployeeService {

  /**
   * 员工登录
   * @param employeeLoginDTO
   * @return
   */
  Employee login(EmployeeLoginDTO employeeLoginDTO);
  
  /**
   * 添加员工
   * @return
   */
  void inster(EmployeeDTO employeeDTO);
  
  /**
   * 员工分页查询
   * @param queryDTO
   * @return
   */
  PageResult page(EmployeePageQueryDTO queryDTO);
  
  /**
   * 启用禁用员工状态
   * @param id
   * @param code
   */
  void changeStatus(Long id, Integer code);
  
  /**
   * 修改员工信息
   * @param employeeDTO
   */
  void update(EmployeeDTO employeeDTO);
  
  /**
   * 根据id查询员工信息
   * @param id
   * @return
   */
  Employee findById(Long id);
  
  /**
   * 修改员工密码。
   *
   * @param passwordEditDTO 包含修改密码所需信息的数据传输对象，包括员工ID、旧密码和新密码
   * @return
   */
  void editPwd(PasswordEditDTO passwordEditDTO);
}
